package com.heima.demo3;

import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;

public class CallableExample {
    public static void main(String[] args) {
        // 创建一个实现Callable接口的任务
        Callable<String> task = new Callable<String>() {
            @Override
            public String call() throws Exception {
                // 模拟耗时操作
                Thread.sleep(2000);  // 暂停2秒
                return "任务完成";
            }
        };

        // 使用FutureTask包装Callable任务
        FutureTask<String> futureTask = new FutureTask<>(task);

        // 创建一个线程来执行FutureTask
        Thread thread = new Thread(futureTask);
        thread.start();  // 启动线程

        try {
            // 获取任务执行的结果，这里会阻塞直到任务完成
            String result = futureTask.get();
            System.out.println("任务执行结果: " + result);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
